package com.donger.common.sso.controller;

import cn.dev33.satoken.sso.SaSsoHandle;
import cn.dev33.satoken.sso.SaSsoUtil;
import cn.dev33.satoken.stp.StpUtil;
import com.donger.common.sso.annotation.IgnoreAuth;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author pmc
 * 单点登陆使用接口
 */
@RestController
public class SsoClientController {


    /*
     * SSO-Client端：处理所有SSO相关请求
     *         http://{host}:{port}/sso/login          -- Client端登录地址，接受参数：back=登录后的跳转地址
     *         http://{host}:{port}/sso/logout         -- Client端单点注销地址（isSlo=true时打开），接受参数：back=注销后的跳转地址
     *         http://{host}:{port}/sso/logoutCall     -- Client端单点注销回调地址（isSlo=true时打开），此接口为框架回调，开发者无需关心
     */
    @RequestMapping("/sso/*")
    public Object ssoRequest() {
        return SaSsoHandle.clientRequest();
    }


    @RequestMapping("/doLoginByTicket")
    @IgnoreAuth
    public Object doLoginByTicket(String ticket){
        Object loginId = SaSsoUtil.checkTicket(ticket);
        StpUtil.login(loginId);
        return StpUtil.getTokenInfo();
    }


}
